package com.gcb.common.enums;

import lombok.Getter;

import java.util.Arrays;
import java.util.Optional;

/**
 * 工船宝USER角色类型
 */
@Getter
public enum GcbUserTypeEnum {

    /**
     * 用户类型 0-普通用户，1-企业管理员，2-企业超级管理员
     */
    COMMON_USER(0, "普通用户"),
    COMPANY_ADMIN(1, "企业管理员"),
    COMPANY_SUPER_ADMIN(2, "企业超级管理员");

    private Integer code;

    private String info;

    GcbUserTypeEnum(Integer code, String info) {
        this.code = code;
        this.info = info;
    }

    public static String getInfo(String type) {
        Integer i = Optional.ofNullable(type)
                .map(Integer::parseInt)
                .orElse(-1);
        return Optional.ofNullable(of(i))
                .map(GcbUserTypeEnum::getInfo)
                .orElse("");
    }

    public static String getInfo(Integer type) {
        return Optional.ofNullable(of(type))
                .map(GcbUserTypeEnum::getInfo)
                .orElse("");
    }

    public static GcbUserTypeEnum of(Integer code) {
        Optional<GcbUserTypeEnum> first = Arrays.stream(GcbUserTypeEnum.values()).filter(v -> v.getCode().equals(code)).findFirst();
        return first.orElse(null);
    }

}
